#ifndef FLOW_TAG_H
#define FLOW_TAG_H
#include <features.h>
#include <sys/types.h>
#include <stdint.h>
#include <netinet/in.h>
__BEGIN_DECLS
struct flow_tag{
    uint32_t tag_id[2];
    uint32_t id_hash[8];
    uint32_t data_id[2];
    uint32_t sent_num[2];
#if __BYTE_ORDER == __LITTLE_ENDIAN
    uint64_t protocol_type:1;
    uint64_t data_mode:5;
    uint64_t level:2;
    uint64_t dst_id:28;
    uint64_t src_id:28;
#elif __BYTE_ORDER == __BIG_ENDIAN
    uint64_t src_id:28;
    uint64_t dst_id:28;
    uint64_t level:2;
    uint64_t data_mode:5;
    uint64_t protocol_type:1;
#else
# error	"Please fix <bits/endian.h>"
#endif
    uint32_t src_ip[4];
    uint32_t dst_ip[4];
    uint32_t tag_hash[8];
};
__END_DECLS
#endif

